#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
生成一张基于声音描述的图片用于查看
"""

import sys
import os
import json
from pathlib import Path

# 添加项目根目录到 Python 路径
project_root = Path(__file__).parent
sys.path.insert(0, str(project_root))

from src.processors.lip_sync_generator import LipSyncGenerator


def generate_sample_image():
    """生成一张示例图片"""
    print("开始生成示例图片...")
    
    # 初始化生成器
    generator = LipSyncGenerator()
    
    # 创建测试对话数据，包含声音信息
    test_dialogue = {
        "background_image": None,
        "dialogue": [
            {
                "speaker": "unique",
                "text": "Bem-vindo ao nosso canal de análise de futebol! Hoje vamos comentar o clássico Palmeiras contra Corinthians.",
            },
        ]
    }
    
    print("输入对话数据:")
    print(json.dumps(test_dialogue, indent=2, ensure_ascii=False))
    
    # 显示声音详细信息
    success, prompt_result = generator.generate_image_prompt(json.dumps(test_dialogue))
    
    if success:
        print("\n✓ 图片提示词生成成功!")
        print("生成的提示词:")
        print(prompt_result)
        
        # 生成图片
        output_path = project_root / "test_output" / "sample_image.png"
        output_path.parent.mkdir(parents=True, exist_ok=True)
        
        print(f"\n正在生成图片: {output_path}")
        image_success, image_result = generator.generate_image_from_prompt(prompt_result, str(output_path))
        
        if image_success:
            print(f"✓ 图片生成成功: {output_path}")
            print(f"图片信息: {image_result}")
            return str(output_path)
        else:
            print(f"✗ 图片生成失败: {image_result}")
            return None
    else:
        print(f"✗ 图片提示词生成失败: {prompt_result}")
        return None


def main():
    """主函数"""
    print("开始生成示例图片")
    print("=" * 50)
    
    # 检查API密钥
    dashscope_api_key = os.getenv("DASHSCOPE_API_KEY")
    if not dashscope_api_key:
        print("错误: 未设置 DASHSCOPE_API_KEY 环境变量")
        return
    
    image_path = generate_sample_image()
    
    print("\n" + "=" * 50)
    if image_path:
        print("示例图片生成成功!")
        print(f"图片路径: {image_path}")
        print("\n图片特点:")
        print("1. 包含两个角色，符合声音描述")
        print("2. 左侧为26岁欧洲男性形象")
        print("3. 右侧为26岁非洲女性形象")
        print("4. 足球分析节目场景")
        print("5. 写实风格，适合用作视频背景")
    else:
        print("示例图片生成失败")


if __name__ == "__main__":
    main()